//package com.jd.coupon.schedule;
//
//import com.jd.coupon.dao.CouponTemplateDao;
//import com.jd.coupon.entity.CouponTemplate;
//import com.jd.coupon.vo.TemplateRule;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.scheduling.annotation.Scheduled;
//import org.springframework.stereotype.Component;
//import org.springframework.util.CollectionUtils;
//
//import java.util.ArrayList;
//import java.util.Date;
//import java.util.List;
//
///**
// * 定时清理已过期的优惠券模板
// */
//@Slf4j
//@Component
//public class ScheduledTask {
//
//
//    private final CouponTemplateDao templateDao;
//
//    @Autowired
//    public ScheduledTask(CouponTemplateDao templateDao){
//        this.templateDao=templateDao;
//    }
//
//
//    /**
//     * 下线已过期的优惠券模板
//     */
//    @Scheduled(fixedRate=60*60*1000)
//    public void offlineCouponTemplate(){
//        log.info("Start to Expire CouponTemplate");
//        List<CouponTemplate> templates=templateDao.findAllByExpired(false);
//        if(CollectionUtils.isEmpty(templates)){
//            log.info("Done to Expire CouponTemplate");
//            return ;
//        }
//        Date cur=new Date();
//        List<CouponTemplate>  expiredTemplates=new ArrayList<>(templates.size());
//        templates.forEach(t->{
//            //根据优惠券模板规则中的“过期规则”
//            TemplateRule rule=t.getRule();
//            if(rule.getExpiration().getDeadline()<cur.getTime()){
//                t.setExpired(true);
//                expiredTemplates.add(t);
//            }
//        });
//        if(!CollectionUtils.isEmpty(expiredTemplates)) {
//            log.info("Expire CouponTemplate Num:{}"+templateDao.saveAll(expiredTemplates));
//            log.info("Done to Expire CouponTemplate");
//        }
//    }
//
//}
